Social Services


Unemployment and maternity benefits


SOX006_raw <- 
  statgl_url("SOX006", lang = language) |> 
  statgl_fetch(
    municipality = px_all(),
    unit         = px_all(),
    type         = px_all(),
    time         = px_top(),
    .col_code    = T
  ) |> 
  as_tibble()

SOX006 <- 
  SOX006_raw |> 
  mutate(municipality = municipality |> fct_inorder(),
         type = type |> fct_inorder()) |>
  spread(type, value) |> 
  arrange(unit) 

SOX006 |> 
  select(-c(2, 3)) |> 
  rename(" " = 1) |> 
  statgl_table() |> 
  pack_rows(index = table(SOX006[[3]])) |> 
  pack_rows(index = table(SOX006[2])) |> 
  row_spec(c(1, 7), bold = T)
Unemployment benefits, total Unemployment benefit, basic Unemployment benefit, termination Unemployment benefit, disease Maternity benefits
2023
Amount (1000 DKK)
Total 25.238 9.119 3.603 12.517 31.775
Kommune Kujalleq 4.718 2.453 9 2.256 3.406
Kommuneqarfik Sermersooq 6.340 2.836 20 3.484 10.182
Qeqqata Kommunia 3.622 1.140 579 1.903 5.397
Kommune Qeqertalik 5.907 2.197 1.624 2.086 4.977
Avannaata Kommunia 4.652 493 1.371 2.788 7.812
Number
Total 1.821 585 384 1.053 719
Kommune Kujalleq 292 158 3 152 84
Kommuneqarfik Sermersooq 362 141 2 232 228
Qeqqata Kommunia 349 108 110 196 120
Kommune Qeqertalik 389 127 121 184 104
Avannaata Kommunia 429 51 148 289 183


See the table in our Statbank: SOX006

Foster care
SOXPV004_raw <- 
  statgl_url("SOXPV004", lang = language) %>%
  statgl_fetch(
    municipality = px_all(),
    year = px_top(1),
    .col_code = TRUE
  ) %>% 
  as_tibble()



SOXPV004_raw %>% 
  mutate(municipality = municipality %>% fct_inorder()) %>% 
  spread(year, value) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  row_spec(1, bold = TRUE)
2024
Total 401
Kommuneqarfik Sermersooq 164
Avannaata Kommunia 55
Kommune Qeqertalik 45
Qeqqata Kommunia 74
Kommune Kujalleq 63


See the table in our Statbank: SOXPV004

Public benefits
SOX004_raw <- 
  statgl_url("SOX004", lang = language) %>% 
  statgl_fetch(
    municipality = px_all(),
    unit         = px_all(),
    type         = 10,
    time         = px_top(),
    .col_code    = TRUE
  ) %>% 
  as_tibble()


SOX004 <- 
  SOX004_raw %>% 
  mutate(municipality = municipality %>% fct_inorder()) %>% 
  spread(unit, value) %>% 
  unite(combi, type, time, sep = ", ")


SOX004 %>% 
  select(-combi) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = SOX004[["combi"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Amount (1000 DKK) Number
Public benefits total, 2023
Total 48.781 3.022
Kommune Kujalleq 10.194 662
Kommuneqarfik Sermersooq 18.905 945
Qeqqata Kommunia 8.854 501
Kommune Qeqertalik 6.339 454
Avannaata Kommunia 4.488 460


See the table in our Statbank: SOX004

Pensions
SOXPEN1_raw <- 
  statgl_url("SOXPEN1", lang = language) %>% 
  statgl_fetch(
    gender    = px_all(),
    payment   = px_all(),
    time      = px_top(),
    .col_code = TRUE
  ) %>% 
  as_tibble()


SOXPEN1 <- 
  SOXPEN1_raw %>% 
  mutate(
    gender = gender %>% fct_inorder(),
    payment = payment %>% fct_inorder()
  ) %>% 
  spread(gender, value)

SOXPEN1 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = SOXPEN1[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Total Man Woman
2024
Total 6.718 3.459 3.259
Age pension 4.207 2.175 2.032
Early retirement pension 2.511 1.284 1.227


See the table in our Statbank: SOXPEN1

Social Care


SOXFO10_raw <- 
  statgl_url("SOXFO10", lang = language) %>%
  statgl_fetch(
    "age group" = px_all(),
    gender      = px_all(),
    time        = px_top(1),
    .col_code   = TRUE
  ) %>% 
  as_tibble()



SOXFO10 <- 
  SOXFO10_raw %>% 
  filter(time == max(time)) %>% 
  mutate(
    `age group` = `age group` %>% fct_inorder(),
    gender = gender %>% fct_inorder()
  ) %>% 
  spread(gender, value)


SOXFO10 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = SOXFO10[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Total Man Woman
2018
Total 1.131 706 425
0-17 years 199 138 61
18-30 years 292 189 103
31-40 years 175 107 68
41-50 years 143 86 57
51-60 years 238 137 101
61+ years 84 49 35


See the table in our Statbank: SOXFO10

Additional social subsidies
SOXBS02_raw <- 
  statgl_url("SOXBS02", lang = language) |> 
  statgl_fetch(
    district  = px_all(),
    unit      = "Antal",
    time      = px_top(7),
    .col_code = T
  ) |> 
  as_tibble()

SOXBS02 <- 
  SOXBS02_raw |> 
  spread(time, value)

SOXBS02 |> 
  select(-unit) |> 
  rename(" " = 1) |> 
  statgl_table() |> 
  pack_rows(index = table(SOXBS02["unit"])) |> 
  row_spec(1, bold = T)
2018 2019 2020 2021 2022 2023 2024
Number
Ilulissat 374 361 359 317 291 262 288
Ittoqotoormiit 23 32 22 19 25 17 15
Kangaatsiaq 37 35 28 35 32 27 28
Maniitsoq 316 302 293 283 279 265 270
Nanortalik 144 135 105 111 115 90 93
Narsaq 179 172 172 154 162 143 138
Nuuk 1.015 1.015 1.023 1.000 980 958 1.009
Paamiut 193 186 183 176 158 155 153
Qaqortoq 306 302 279 281 309 267 260
Qasigiannguit 126 112 106 108 93 78 84
Qeqertarsuaq 72 62 60 68 62 65 57
Qaanaaq 54 51 47 43 43 41 46
Sisimiut 533 499 509 510 495 485 521
Tasiilaq 153 153 142 144 135 140 132
Total 3.941 3.822 3.729 3.653 3.527 3.326 3.423
Upernavik 45 38 26 36 29 27 33
Uummannaq 73 71 69 68 52 47 47
Aasiaat 298 296 306 300 267 259 249


See the table in our Statbank: SOXBS02

Economically disadvantaged


SODOU01_raw <- 
  statgl_url("SOXOU01", lang = language) %>% 
  statgl_fetch(
    "inventory variable" = c("Andel50", "Andel60"),
    gender = px_all(),
    year = px_top(1),
    .col_code = TRUE
  ) %>% 
  as_tibble()


SODOU01 <- 
  SODOU01_raw %>% 
  mutate(`inventory variable` = `inventory variable` %>% fct_inorder()) %>% 
  arrange(desc(gender)) %>% 
  mutate(gender = gender %>% fct_inorder() %>% fct_rev()) %>% 
  spread(gender, value)
  

SODOU01 %>% 
  select(-year) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = SODOU01[["year"]] %>% table())
Female Male Total
2023
fraction below 50% 4,1 5,0 4,6
fraction below 60% 7,8 8,7 8,2


See the table in our Statbank: SOXOU01


Last updated: 22. juni 2025
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgb3ZlcmZsb3cteTogaGlkZGVuOw0KICBvdmVyZmxvdy14OiBhdXRvOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkU08kdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWDAwNiIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWDAwNn0NCg0KU09YMDA2X3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YMDA2IiwgbGFuZyA9IGxhbmd1YWdlKSB8PiANCiAgc3RhdGdsX2ZldGNoKA0KICAgIG11bmljaXBhbGl0eSA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHR5cGUgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICA9IHB4X3RvcCgpLA0KICAgIC5jb2xfY29kZSAgICA9IFQNCiAgKSB8PiANCiAgYXNfdGliYmxlKCkNCg0KU09YMDA2IDwtIA0KICBTT1gwMDZfcmF3IHw+IA0KICBtdXRhdGUobXVuaWNpcGFsaXR5ID0gbXVuaWNpcGFsaXR5IHw+IGZjdF9pbm9yZGVyKCksDQogICAgICAgICB0eXBlID0gdHlwZSB8PiBmY3RfaW5vcmRlcigpKSB8Pg0KICBzcHJlYWQodHlwZSwgdmFsdWUpIHw+IA0KICBhcnJhbmdlKHVuaXQpIA0KDQpTT1gwMDYgfD4gDQogIHNlbGVjdCgtYygyLCAzKSkgfD4gDQogIHJlbmFtZSgiICIgPSAxKSB8PiANCiAgc3RhdGdsX3RhYmxlKCkgfD4gDQogIHBhY2tfcm93cyhpbmRleCA9IHRhYmxlKFNPWDAwNltbM11dKSkgfD4gDQogIHBhY2tfcm93cyhpbmRleCA9IHRhYmxlKFNPWDAwNlsyXSkpIHw+IA0KICByb3dfc3BlYyhjKDEsIDcpLCBib2xkID0gVCkNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfSBgciBwYXN0ZShzb3VyY2UsICJTT1gwMDYiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2IxNmQ2ZGIzLTlmYWItNGRiMi1hMjIyLTA2OTZmYWY4Mzg5NCIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4NCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViMltsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJTT1hQVjAwNCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWFBWMDA0fQ0KDQpTT1hQVjAwNF9yYXcgPC0gDQogIHN0YXRnbF91cmwoIlNPWFBWMDA0IiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIG11bmljaXBhbGl0eSA9IHB4X2FsbCgpLA0KICAgIHllYXIgPSBweF90b3AoMSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KDQoNClNPWFBWMDA0X3JhdyAlPiUgDQogIG11dGF0ZShtdW5pY2lwYWxpdHkgPSBtdW5pY2lwYWxpdHkgJT4lIGZjdF9pbm9yZGVyKCkpICU+JSANCiAgc3ByZWFkKHllYXIsIHZhbHVlKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIlNPWFBWMDA0IilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS8zNWZmMjk4My1lOTI5LTRjYWMtOWE0NS1jZTdhZmQ0NzJjMWYiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KPC9kZXRhaWxzPg0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRTTyRzdWIzW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAzOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWDAwNCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWDAwNH0NCg0KU09YMDA0X3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YMDA0IiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBtdW5pY2lwYWxpdHkgPSBweF9hbGwoKSwNCiAgICB1bml0ICAgICAgICAgPSBweF9hbGwoKSwNCiAgICB0eXBlICAgICAgICAgPSAxMCwNCiAgICB0aW1lICAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICAgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQoNClNPWDAwNCA8LSANCiAgU09YMDA0X3JhdyAlPiUgDQogIG11dGF0ZShtdW5pY2lwYWxpdHkgPSBtdW5pY2lwYWxpdHkgJT4lIGZjdF9pbm9yZGVyKCkpICU+JSANCiAgc3ByZWFkKHVuaXQsIHZhbHVlKSAlPiUgDQogIHVuaXRlKGNvbWJpLCB0eXBlLCB0aW1lLCBzZXAgPSAiLCAiKQ0KDQoNClNPWDAwNCAlPiUgDQogIHNlbGVjdCgtY29tYmkpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1gwMDRbWyJjb21iaSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YMDA0IilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS8xNmRjYTg4Ni0zMjY1LTRkNGYtYjUzOS03NzBmZjE5MTM1N2YiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KPC9kZXRhaWxzPg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjRbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+IA0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDQ6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiU09YUEVOMSIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIEFMWEFMSzR9DQoNClNPWFBFTjFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hQRU4xIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBnZW5kZXIgICAgPSBweF9hbGwoKSwNCiAgICBwYXltZW50ICAgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQoNClNPWFBFTjEgPC0gDQogIFNPWFBFTjFfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIGdlbmRlciA9IGdlbmRlciAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBwYXltZW50ID0gcGF5bWVudCAlPiUgZmN0X2lub3JkZXIoKQ0KICApICU+JSANCiAgc3ByZWFkKGdlbmRlciwgdmFsdWUpDQoNClNPWFBFTjEgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1hQRU4xW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIlNPWFBFTjEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzBmYTk0YWNlLTk2OWQtNDI5YS04Yjg3LWNhOWNkMmI1ZGFiNyIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViNVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4NCjxicj4NCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDU6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiU09YRk8xMCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWEZPMTB9DQoNClNPWEZPMTBfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hGTzEwIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgICJhZ2UgZ3JvdXAiID0gcHhfYWxsKCksDQogICAgZ2VuZGVyICAgICAgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgICA9IHB4X3RvcCgxKSwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCg0KDQpTT1hGTzEwIDwtIA0KICBTT1hGTzEwX3JhdyAlPiUgDQogIGZpbHRlcih0aW1lID09IG1heCh0aW1lKSkgJT4lIA0KICBtdXRhdGUoDQogICAgYGFnZSBncm91cGAgPSBgYWdlIGdyb3VwYCAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBnZW5kZXIgPSBnZW5kZXIgJT4lIGZjdF9pbm9yZGVyKCkNCiAgKSAlPiUgDQogIHNwcmVhZChnZW5kZXIsIHZhbHVlKQ0KDQoNClNPWEZPMTAgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1hGTzEwW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJTT1hGTzEwIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9lZTFhZGYzMS00NTdjLTQ5YTctOGJjNy01NGEwZTBhOWZjOTAiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQo8L2RldGFpbHM+DQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjZbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgNjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJTT1hCUzAyIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCmBgYHtyIFNPWEJTMDJ9DQoNClNPWEJTMDJfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hCUzAyIiwgbGFuZyA9IGxhbmd1YWdlKSB8PiANCiAgc3RhdGdsX2ZldGNoKA0KICAgIGRpc3RyaWN0ICA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICA9ICJBbnRhbCIsDQogICAgdGltZSAgICAgID0gcHhfdG9wKDcpLA0KICAgIC5jb2xfY29kZSA9IFQNCiAgKSB8PiANCiAgYXNfdGliYmxlKCkNCg0KU09YQlMwMiA8LSANCiAgU09YQlMwMl9yYXcgfD4gDQogIHNwcmVhZCh0aW1lLCB2YWx1ZSkNCg0KU09YQlMwMiB8PiANCiAgc2VsZWN0KC11bml0KSB8PiANCiAgcmVuYW1lKCIgIiA9IDEpIHw+IA0KICBzdGF0Z2xfdGFibGUoKSB8PiANCiAgcGFja19yb3dzKGluZGV4ID0gdGFibGUoU09YQlMwMlsidW5pdCJdKSkgfD4gDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUKQ0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YQlMwMiIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvMzk4OGViYTAtNjc4MC00MzZkLTgxZGEtYmU3M2Y4NzRiMjY3Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2Pg0KPC9kZXRhaWxzPg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjdbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCA3OiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWE9VMDEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBTT1hPVTAxfQ0KDQpTT0RPVTAxX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YT1UwMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lIA0KICBzdGF0Z2xfZmV0Y2goDQogICAgImludmVudG9yeSB2YXJpYWJsZSIgPSBjKCJBbmRlbDUwIiwgIkFuZGVsNjAiKSwNCiAgICBnZW5kZXIgPSBweF9hbGwoKSwNCiAgICB5ZWFyID0gcHhfdG9wKDEpLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCg0KU09ET1UwMSA8LSANCiAgU09ET1UwMV9yYXcgJT4lIA0KICBtdXRhdGUoYGludmVudG9yeSB2YXJpYWJsZWAgPSBgaW52ZW50b3J5IHZhcmlhYmxlYCAlPiUgZmN0X2lub3JkZXIoKSkgJT4lIA0KICBhcnJhbmdlKGRlc2MoZ2VuZGVyKSkgJT4lIA0KICBtdXRhdGUoZ2VuZGVyID0gZ2VuZGVyICU+JSBmY3RfaW5vcmRlcigpICU+JSBmY3RfcmV2KCkpICU+JSANCiAgc3ByZWFkKGdlbmRlciwgdmFsdWUpDQogIA0KDQpTT0RPVTAxICU+JSANCiAgc2VsZWN0KC15ZWFyKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gU09ET1UwMVtbInllYXIiXV0gJT4lIHRhYmxlKCkpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YT1UwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvYzdiYzlkNGItNGM5Ny00NjJkLWJiZDMtMjdjOTY4ZmM0MDU4Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPC9kZXRhaWxzPg0KDQoNCjxociBzdHlsZT0iYm9yZGVyOjFweCByaWRnZSBsaWdodGdyYXkiPiA8L2hyPg0KPGNlbnRlcj4gPHNwYW4gc3R5bGU9J2NvbG9yOiNEM0QzRDM7IGZvbnQtc2l6ZTo5MCU7Jz4gYHIgcGFzdGUodHh0JHVwZGF0ZVtsYW5ndWFnZV0sIGZvcm1hdChTeXMuRGF0ZSgpLCAiJWQuICVCICVZIikpYCA8L3NwYW4+IDwvY2VudGVyPg0KDQoNCg0KDQo8c2NyaXB0Pg0KdmFyIGFjYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbiIpOw0KdmFyIGk7DQoNCmZvciAoaSA9IDA7IGkgPCBhY2MubGVuZ3RoOyBpKyspIHsNCiAgYWNjW2ldLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7DQogICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiKTsNCiAgICB2YXIgcGFuZWwgPSB0aGlzLm5leHRFbGVtZW50U2libGluZzsNCiAgICBpZiAocGFuZWwuc3R5bGUubWF4SGVpZ2h0KSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsOw0KICAgIH0gZWxzZSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBwYW5lbC5zY3JvbGxIZWlnaHQgKyAicHgiOw0KICAgIH0gDQogIH0pOw0KfQ0KPC9zY3JpcHQ+DQoNCg0K